import { Module, Global } from '@nestjs/common';
import { ConfigService } from './config.service';
import { join } from 'path';
// process.env.NODE_ENV = process.env.NODE_ENV || "development";
/**
 * 加载环境配置变量,让全局模块可以读取到配置
 * 注入的时候使用exports里面的名字.
 * 需要导入ConfigModule 才可以使用ConfigService和里面的配置
 * @Global()的作用是共享的时候，子模块不需要在@module声明即可使用，但需要在顶级根导入该模块
 */
@Global()
@Module({
  providers: [
    {
      provide: ConfigService,
      useValue: new ConfigService(
        join(__dirname, `../../env/${process.env.NODE_ENV}.env`),
      ),
    },
    {
      provide: 'CONFIG_OPTION',
      useValue: join(__dirname, `../../env/${process.env.NODE_ENV}.env`) // 注入一些环境配置
    }
  ],
  exports: [ConfigService],
})
export class ConfigModule {}
